home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1997 September / Macworld (1997-09).dmg / Shareware World / Utilities / Text Processing / Alpha / Help / MacPerl Help < prev    next >
Text File  |  1995-07-31  |  25KB  |  619 lines

  1. ########################
  2. MacPerl Support in Alpha
  3. ########################
  4.  
  5. Introduction
  6. ============
  7.  
  8. This document describes the use of the MacPerl menu in Alpha.  The 
  9. MacPerl menu was written to allow Alpha to act as a front end for 
  10. Matthias Neeracher's standalone MacPerl application and to make it 
  11. possible to "attach" Perl scripts to Alpha.  It provides a number of 
  12. features designed to make the use and development of Perl scripts on the 
  13. Mac more convenient.  These are detailed in the rest of this document 
  14. (most easily navigated using the "{}" menu on the sidebar), but here's a 
  15. quick overview:
  16.  
  17. Editing Perl scripts...
  18.  
  19. • Perl keywords and special variables are colorized in Perl mode.
  20.  
  21. • The Perl 4 man page is provided as an on-line reference, 
  22.   available as the file "Perl Commands" in Alpha's Help menu; it has 
  23.   been colorized and indexed to make it easy to read and navigate.
  24.  
  25. • The man page can be referenced by command-double-clicking a 
  26.   highlighted Perl keyword or special variable in your Perl script.
  27.   
  28. • Source files mentioned in require statements can be opened by 
  29.   command-double-clicking as well. 
  30.  
  31. Running Perl Scripts...
  32.  
  33. • MacPerl scripts can be run directly from Alpha - a script can be 
  34.   a text window in Alpha, a highlighted selection from a window, or a 
  35.   disk file.
  36.  
  37. • You can save scripts as MacPerl droplets and runtime applications 
  38.   directly from Alpha.
  39.  
  40. • Perl scripts that read from standard input and write to standard 
  41.   output may be used to process text in Alpha's text windows.
  42.  
  43. Debugging Perl scripts...
  44.  
  45. • When a script fails, the error messages are displayed and the 
  46.   script is brought up with the line that caused the error highlighted.
  47.  
  48. • A flag can be set to cause scripts to run under the Perl 
  49.   debugger (without modifying the script).
  50.  
  51.  
  52. Currently, no explicit support or documentation is provided for Perl 5, 
  53. but this will follow once a stable port of Perl 5 to the 68k Macintosh 
  54. emerges.
  55.  
  56. Instructions for obtaining the MacPerl application are given further below.
  57.  
  58.  
  59. Installation
  60. ============
  61.  
  62. No special installation procedure is required before using this package.  
  63. However, there are a couple of things that you may need to do to 
  64. configure things for your particular machine.
  65.  
  66. MacPerl application and library
  67. -------------------------------
  68.  
  69. Alpha needs to know where to find your MacPerl application in order to 
  70. interact with it, and will automatically prompt you to locate it if it 
  71. doesn't know where it is.  You can always check and/or change the path 
  72. that Alpha uses by selecting the "MacPerl" entry in the "Mode:App Paths" 
  73. menu.
  74.  
  75. When opening "require"d source files via the command-double-click 
  76. mechanism, Alpha will always look in the "lib" folder in the MacPerl 
  77. application directory.  To have Alpha look for library files elsewhere, 
  78. you can specify an additional personal library folder, using the 
  79. "MacPerl lib folder" entry in "Mode:App Paths" menu.
  80.  
  81. Text Filters Setup
  82. ------------------
  83.  
  84. If you want to use Perl scripts to process Alpha text buffers (see 
  85. Text Filters), you'll need to arrange that the Perl menu is visible 
  86. while you're in Text mode.  While in Text mode, select "Set Mode 
  87. Menus…" from the "√" pop-up menu on the side-bar and command-click 
  88. on "perlMenu" in the list of menus shown.  The little camel icon 
  89. should appear on the menu bar when you're done.
  90.  
  91. The MacPerl menu contains a hierarchical submenu of preattached scripts 
  92. to be used as text filters.  A sample collection of such scripts is 
  93. distributed with Alpha in the ":Tcl:UserCode:Text Filters:" folder.  You 
  94. can specify your own folder of scripts using "MacPerl Text Filters 
  95. folder" entry in "Mode:App Paths" menu.
  96.  
  97. Option flags
  98.  
  99. There are a handful of flags you can set to modify the way Alpha and 
  100. MacPerl interact while running Perl scripts.  These can be set from 
  101. either the MacPerl menu or the "√" pop-up menu on the side-bar.  They're
  102. described in detail below.
  103.  
  104.  
  105. Perl Mode
  106. =========
  107.  
  108. Perl mode is entered automatically whenever you open a file with a ".pl" 
  109. or ".ph" suffix; you can also invoke it explicitly using the modes menu 
  110. (downward triangle) on the sidebar.  Perl mode offers a number of 
  111. features supporting the editting and debugging of Perl scripts:
  112.  
  113. Basic language support
  114. ----------------------
  115.  
  116. • Perl keywords and special variables appear in blue in Perl mode.
  117.  
  118. • A single line or a selected block of lines may be commented out by 
  119.   using the "Comment Line" command under the "Convert" menu.  Lines
  120.   are uncommented using "Uncomment Line", which appears in the "Convert" 
  121.   menu when the option key is held down.
  122.  
  123. • Alpha will create an index of all subroutines in your Perl script when 
  124.   you select "Mark File" from the Marks menu on the sidebar (the "{}" 
  125.   button).  Once created this index is saved with your file.  
  126.  
  127.   When you open a Perl script that hasn't already been indexed, an index 
  128.   is automatically created.
  129.  
  130. Command-double-clicking
  131. -----------------------
  132.  
  133. A simple form of hypertext help is invoked by double-clicking on 
  134. certain pieces of text while the command key is held down: 
  135.  
  136. • The online man page can be referenced by command-double-clicking a 
  137.   highlighted Perl keyword or special variable in your Perl script.
  138.   
  139.   Most of the clickable keywords and variables will be colored blue.
  140.   Special variables containing alphabetic characters, .e.g. @ARGV,
  141.   are also clickable but are not colored. 
  142.   
  143. • Command-double-clicking on the name of the source file in a require
  144.   statement will cause that file to be opened by Alpha.  
  145.  
  146.   Alpha will look for the file in the current script's folder, in your local 
  147.   library folder and in the MacPerl lib folder (in that order).  The local 
  148.   lib folder may be specified interactively by the user (see Installation).
  149.  
  150.  
  151.  
  152. MacPerl Menu
  153. ============
  154.  
  155. Alpha's MacPerl menu allows a number of actions.  These are ...
  156.  
  157. MacPerl interaction
  158. -------------------
  159.  
  160. Macperl                  Switch to the MacPerl application.
  161.  
  162. Tell Macperl... >
  163.     
  164.     Open In Macperl        Open the current document in MacPerl.
  165.     
  166.     Save As Droplet        Save the current document as a MacPerl droplet.
  167.     
  168.     Save As Droplet        Save the current document as a MacPerl runtime script.
  169.     
  170.     Save As CGI            Save the current document as a MacPerl CGI applet.
  171.     
  172.                 A bug in the AEGizmos package makes it impossible to create 
  173.                 CGI applets directly from Alpha at this point.  You will have 
  174.                 to open the script in MacPerl and save it from there.
  175.     
  176.     Open Output Window     Retrieve the contents of MacPerl's main output window 
  177.                         into a new window under Alpha.
  178.     
  179.     Close Output Window    Close MacPerl's main output and debugger windows.
  180.     
  181.     Quit                  Force the MacPerl application to quit. 
  182.  
  183. Running Perl Scripts
  184. --------------------
  185.  
  186. Run The Selection      Execute the selected text as a Perl script.
  187.  
  188. Run The Buffer      Execute the current text window as a Perl script.
  189.  
  190. Save And Run          Save the current window and run the saved file as 
  191.                     a Perl script. (see Current Directory)
  192.  
  193. Run A File          Run a selected disk file as a Perl script.  
  194.  
  195. Applying Text Filter Scripts
  196. ----------------------------
  197.  
  198. Text Filters >    A hierarchical menu of "preattached" scripts to use 
  199.                 as text filters.  When a script is selected from this menu, 
  200.                 it is immediately applied to the current text window.
  201.                 
  202.                 The menu is built from the contents of a user-selected 
  203.                 folder.  The folder is chosen using the "Mode:App Paths" 
  204.                 menu command on the main menubar or the "Text Filters Folder"
  205.                 command under the Macperl "Filter Options" submenu (below).
  206.                 
  207. Select Buffer As Filter    Select one of the open text windows to use as the 
  208.                         text filter script.
  209.  
  210. Select File As Filter    Select a file to use as the text filter script.
  211.  
  212. Repeat Last Filter        Run again the last filter that was used.
  213.  
  214.                         If the contents of the file or buffer has changed, the
  215.                         new script is run.
  216.  
  217.  
  218. Option flags
  219. ------------
  220.     
  221. General Options >    Flags that control Alpha's behavior when executing 
  222.                     ordinary scripts (not text filters).
  223.      
  224.      Retrieve Output        Automatically retrieve any output written to the 
  225.                          MacPerl output window and display it in a new 
  226.                          window under Alpha. (same as "perlGetOutput")
  227.                          
  228.                          If the mode variable "perlRecycleOutput" is set, 
  229.                          the previous output window is overwritten.
  230.                          
  231.      Auto Switch            Switch to MacPerl while scripts are being executed.
  232.                          Otherwise, Alpha remains frontmost until the script
  233.                          finishes. (same as "perlAutoSwitch")
  234.  
  235.      Prompt For Args        Have Alpha prompt you for command-line arguments 
  236.                          to be passed to the script. (same as "perlPromptArgs")
  237.  
  238.     Use Debugger         Force the script to run under the MacPerl debugger.  
  239.                         (same as "perlUseDebug")
  240.      
  241.                          Control is automatically switched to MacPerl
  242.                          when the debugger is used.
  243.     
  244. Filter Options >        Flags controlling the behavior of text filters mechanism.
  245.                      
  246.      Apply To Buffer        Apply the filter to the entire current text window;
  247.                          otherwise, only the selected text is used.
  248.                         (same as "perlUseBuffer")
  249.                          
  250.      Overwrite Selection    When checked, the output from the text filter 
  251.                          script will replace the input text in the original
  252.                          window.  Otherwise, the output is written into
  253.                          a new window.
  254.                         (same as "perlOverwrite")
  255.  
  256.     Text Filters Folder  Select the folder from which the Text Filters menu is 
  257.                         built.  (You can also use the "Mode:App Paths" menu.)
  258.  
  259.     Rebuild Filter Menu  Reconstruct the "Text Filters" menu from the 
  260.                         contents of the designated "Text Filters" folder.
  261.         
  262.                         
  263. Mode variables
  264. --------------
  265.  
  266. A more complete set of Perl option flags are also settable through the 
  267. flags menu "√" on the sidebar (while you're in Perl mode).
  268.  
  269. perlAutoSwitch         (same as "Auto Switch" under "General Options")
  270. perlGetOutput        (same as "Retrieve Output" under "General Options")
  271. perlOverwrite        (same as "Overwrite Selection" under "Filter Options")
  272. perlPromptArgs         (same as "Prompt For Args" under "General Options")
  273. perlUseDebug         (same as "Use Debugger" under "General Options" ) 
  274. perlUsebuffer         (same as "Apply To Buffer" under "Filter Options")
  275.  
  276. perlRecycleOutput     If selected, output returned by Macperl overwrites 
  277.                     previous output in the "* Perl Output *" window in Alpha,
  278.                     instead of going into a new window.
  279.  
  280. There are also two mode variables that may be examined
  281.  
  282. perlLastFilter        Contains the location of the last text-filter script used.
  283.  
  284. perlCmdlineArgs     Contains the last command-line options supplied.
  285.  
  286.                     Note these are only passed to scripts when the "Prompt for  
  287.                     Args" option is active.
  288.  
  289.  
  290. Running Scripts
  291. ===============
  292.  
  293. Running scripts using the MacPerl menu is pretty straightforward.  You 
  294. can send the current selection, the entire current buffer, or a disk 
  295. file to MacPerl for execution as a Perl script; the result will be the 
  296. same as if you ran the script from MacPerl itself.  Here are listed some 
  297. important points to remember when running Perl scripts using the MacPerl 
  298. menu.  
  299.  
  300. Input and Output
  301. ----------------
  302.  
  303. •    Except for text filter scripts, the standard input for your script 
  304.     is taken from the keyboard (while MacPerl is in the foreground)
  305.     and standard output goes to MacPerl's output window.
  306.     
  307.     If you need to interact with the script while it's running, make 
  308.     sure that you've selected the "AutoSwitch" flag under "General 
  309.     Options".
  310.  
  311. •    To get the output from your script, select the "Retrieve Output" 
  312.     flag under "General Options", this will cause Alpha to copy any 
  313.     output to Macperl's standard output window back into Alpha after 
  314.     your script has completed.  You can always do this manually by 
  315.     using the "Get Output Window" command under the "Tell Macperl…" 
  316.     submenu.
  317.     
  318.     Again, if you need to see the results while the script is running, 
  319.     use "AutoSwitch" to bring MacPerl to the foreground during script 
  320.     execution.
  321.  
  322. Current Directory
  323. -----------------
  324.  
  325. For the purpose of resolving relative file references, etc., within your 
  326. script, it's important to understand how the current directory of the 
  327. running script (as returned by `pwd` ) is determined.
  328.  
  329. •    If you run a script file (using "Run A File"), then the folder 
  330.     containing that file is the current folder.
  331.  
  332. •    If you run a script from a text buffer (using "Run The Buffer" or "Run 
  333.     The Selection") , it is as though you ran it directly from a window in 
  334.     the MacPerl application, and so the current directory your script sees 
  335.     is the MacPerl application folder.
  336.     
  337. •    If you run a script from a buffer using the "Save and Run" command, 
  338.     then the script is first saved to disk and then executed as a script 
  339.     file.  In this case, the current directory is that of the script file.
  340.  
  341.  
  342. Command-line Args
  343. -----------------
  344.  
  345. • If the menu flag "Prompt For Args" is checked, then the user is prompted 
  346.   for command-line arguments at the time the script is run.  These will be 
  347.   available inside the script through the @ARGV array, as usual.  They are 
  348.   also saved in the Perl-mode variable "perlCmdlineArgs", and become the 
  349.   default arguments the next time the script is executed.
  350.  
  351. Error Messages
  352. --------------
  353.  
  354. • If the script fails for some reason, Alpha will read the error messages 
  355.   returned by MacPerl and write them back into a new text window, called 
  356.   "* Perl Errors *".  
  357.  
  358. • The script that generated the error is brought up 
  359.   and the first line specifically referenced in an error message is 
  360.   highlighted.
  361.  
  362.   Note that error-trapping remains active whether "Retrieve Output" is set 
  363.   or not.
  364.  
  365. Interrupting a Script
  366. ---------------------
  367.  
  368. When you run a Perl script from Alpha, Alpha will display the watch 
  369. cursor and wait for the reply from Macperl before doing anything else.  
  370. There may be times when this is inappropriate, for instance, if you 
  371. expect the script to run for a long time or if you think the script is
  372. misbehaving for some reason.
  373.  
  374. • You can always tell Alpha to stop waiting for a script to finish by 
  375.   hitting "Cmd-.".  
  376.   
  377.   This does not abort the script itself; to do that you'll have to switch 
  378.   over to MacPerl to terminate the script there, as well.
  379.  
  380. • When you interrupt a script in this way, Alpha will no longer 
  381.   automatically get the output or error messages from MacPerl, when and if 
  382.   the script does finally terminate.
  383.   
  384.   You can always retrieve the contents of the output window yourself using 
  385.   "Get Output Window" from the "Tell MacPerl…" submenu or simply by 
  386.   switching over to Macperl itself.
  387.  
  388. There are some simple causes for a hung script.  For instance, if 
  389. MacPerl is configured to check for "#!" lines in scripts and yours 
  390. doesn't have one, it will put up a dialog asking whether or not to 
  391. procede.  If you didn't switch over to MacPerl when the script was run, 
  392. you have know way of knowing this, and so you and Alpha may end up just 
  393. sitting there waiting.
  394.  
  395.  
  396. Text Filters
  397. ============
  398.  
  399. Perl is, among other things, a powerful tool for extracting and 
  400. rewriting data from text files.  On a Unix system, one would 
  401. typically write text-processing scripts to read from "standard 
  402. input" and write to "standard output", taking advantage of 
  403. command-line i/o redirection to specify the actual input and output 
  404. files used at any given time.  On the Mac, the typical absence of a 
  405. command-line interface makes it harder to use this elegant method.
  406.  
  407. The MacPerl menu in Alpha makes it possible to use scripts that 
  408. read from standard input and write to standard output to process 
  409. text buffers in Alpha directly.  Any text window can be used as 
  410. standard input and standard output can either be directed back to 
  411. that same window or to a newly created one.  The script used may 
  412. either be a disk file or yet another Alpha text window. 
  413.  
  414. Applying a Text Filter 
  415. ----------------------
  416.  
  417. The procedure for using Perl text filters in Alpha is simple:
  418.  
  419. 1.  Bring the text window you want to operate on to the front and select 
  420.     (highlight) the text that will be the input to the script.
  421.    
  422.    * If the "Apply To Buffer" option is selected, then the entire text 
  423.      window will be used as input and any text selection is ignored.
  424.    
  425.    * Only complete lines are used as input.  The text used will be extended 
  426.      to include all of the lines on which the selected text lies.
  427.  
  428. 2.    Select a Perl script using one of the commands, "Select Buffer As 
  429.     Filter", "Select File As Filter" or "Repeat Last Filter" from the Perl 
  430.     menu, or by choosing one of the scripts listed in the "Text Filters" 
  431.     submenu.
  432.  
  433.    * You can see the name of the last script used by examining the 
  434.      variable "perlLastFilter" under the "√" menu in Perl mode. This
  435.      is the script that will be used if you use "Repeat Last Filter" 
  436.      
  437.    * If the "Prompt For Args" option has been selected, you'll be given 
  438.      a dialog box to type in the command-line arguments for the script. 
  439.  
  440. 3.  The output of the script is written back out, either in the place of 
  441.     the input text (if the "Overwrite Selection" option is selected) or into 
  442.     a new text window.
  443.         
  444.     * As always, Alpha's unlimited undo capability let's you recover if you 
  445.       accidently overwrite the input text when you didn't want to.
  446.     
  447.     * If the script halts on an error, the filter operation is aborted 
  448.       and any error messages are displayed in a new window.
  449.  
  450.  
  451. The ability to take the script itself from a text window allows simple 
  452. one-time scripts to be created and applied on the fly.  This can be very 
  453. useful because, even with the overhead to start up MacPerl, large-scale 
  454. global search-and-replace operations (hundreds of replaces) can be 
  455. substantially faster in MacPerl than in Alpha.  Also, you might find 
  456. it easier to apply a series of regular expression substitutions using a 
  457. single, short Perl script, rather than a number of separate "Find" and 
  458. "Replace All" commands in Alpha.
  459.  
  460.  
  461. Preattached Scripts
  462. -------------------
  463.  
  464. Frequently used text filter scripts can be conveniently accessed by 
  465. placing them in a folder called "Text Filters" within the MacPerl 
  466. application folder.  When the MacPerl menu is first created, it looks in 
  467. this folder and builds a hierarchical submenu from the names of the 
  468. scripts that it finds.  Note that it will also create a "Text Filters" 
  469. folder if one doesn't already exist.
  470.  
  471. A sampling of useful :-) Perl scripts is distributed with Alpha in 
  472. the folder ":Tcl:UserCode:Text Filters".  
  473.  
  474. Of the scripts in the sample collection, the "Text Munging" scripts 
  475. ("shuffle", "sort lines", "travesty", and "wordcount") were taken from 
  476. the Camel book (Programming Perl).  The "s2p" script is my adaptation 
  477. of the standard code that converts Unix "sed" scripts to Perl (it was 
  478. modified to work without using the C preprocessor.) "Strip Mail Headers" 
  479. takes e-mail files and edits out any header lines but the few that I 
  480. typically care about ("From:, "Date:", etc..).  "CC To BibTeX" is a 
  481. script I use that takes listings from the online "Current Contents" 
  482. database and rewrites them as BibTeX database entries.  To try it out, 
  483. select (highlight) the sample Current Contents citation below and choose 
  484. "CC To BibTeX" from the "Text Filters" submenu (make sure that "Apply 
  485. To Buffer" is _not_ checked before you do!)
  486.  
  487. 288. VOS MH; LAMBRY JC; ROBLES SJ; YOUVAN DC; and others.
  488.        FEMTOSECOND SPECTRAL EVOLUTION OF THE EXCITED STATE OF BACTERIAL
  489.      REACTION CENTERS AT 10-K.
  490.        PROCEEDINGS OF THE NATIONAL ACADEMY OF SCIENCES OF THE UNITED STATES OF
  491.      AMERICA, 1992 JAN 15, V89 N2:613-617.
  492.  
  493.  
  494. Bugs, etc.
  495. ==========
  496.  
  497. Comments and suggestions regarding this package are always welcome.  If 
  498. there's something that bothers you, or some additional capability that 
  499. you'd like to see, let me know and I'll see what I can do.
  500.  
  501. Bug reports and any other comments should be directed to
  502.  
  503.      Tom Pollard <pollard@chem.columbia.edu>
  504.  
  505.  
  506. Version History
  507. ===============
  508.  
  509. 2.3  7/95  -  Minor tweaks and code rearrangement.
  510. 2.2  6/95  -  Text filters act only on current line if "Apply to Buffer" is
  511.                  false and no text has been selected.
  512.               More verbose commentary when running scripts.
  513.               Bug fix in error-marking for scripts sent as AppleEvent parameters.
  514.               Cmd-dbl-clicking a function call jumps to function, if
  515.                  defined in the same file.
  516. 2.1  6/95  -  Cmd-dbl-clicking a 'require'd filename opens the file.
  517. 2.0  6/95  -  Minor bug fixes (incl. keyword decapitalization), and
  518.               Alpha 6.0b17 compatibility updates.
  519.               Text Filters folder is settable from the App Paths menu now.
  520. 1.9  5/95  -  Cmd-dbl-clicking Perl keywords and special variables displays
  521.                  the man page info.
  522. 1.8  4/95  -  Menu reorganized somewhat.
  523.               Text Filters folder can now be anywhere.
  524.               "ApplyToBuffer" flag ignored if text has been selected.
  525. 1.7  1/95  -  Updated to take advantage of MacPerl 4.1.4 AppleEvent features:
  526.                1) Text filters use 'batch' doScript (.: STDOUT file obsolete)
  527.                2) Filter scripts sent as doScript params (.: SCRIPT file obsolete)
  528.                3) "Save As Droplet" and "Save as Runtime" commands added.
  529.               Errors generated in 'require'd files are now displayed correctly
  530. 1.6 10/94  -  "UseDebugger" flag added (forces scripts to run under debugger).
  531.               Key bindings added for some menu commands.
  532.               "perlDoScript{,2,3}" procs consolidated into a single proc.
  533.               "saveAndRun" option added.
  534.               Command-line args now parsed into units more correctly, in
  535.                   particular, quoted file names aren't broken up.
  536.               "Close Output Window" added to "Tell MacPerl" menu.
  537.               Updated for Alpha 5.98 to load when menu is inserted.
  538.               The error messages window is now recycled.
  539.               "perlRecycleOutput" recycles output window.
  540.               Minor bug fixes.
  541. 1.5  9/94  -  MacPerl menu rearranged somewhat.
  542.               Explicit "Get Output Window" command added to menu.
  543.               Reading "#!" line for args is incompatible w/ standard,
  544.                   so it's been dropped.
  545.               Only scan the first 40 output lines for error messages (faster)
  546.               "wrapFilterScript" no longer opens STDIN
  547.               Text filters may now use command-line args
  548.               STDIN for text filters passed as explicit cmd-line arg 
  549. 1.4  9/94  -  The "#!" line of every script is read for command-line args.
  550.               "PromptForArgs" menu flag added.
  551.               "perlCmdlineArgs" modeVar holds default command-line args.
  552.               Scripts are sent using custom "perlDoScript2" proc.
  553. 1.3  9/94  -  When any script generates a compilation error, the file 
  554.                   containing the script is brought up with the offending 
  555.                   line highlighted; all error output is also written to
  556.                   a "Perl Error Messages" window.
  557.               'repeatLastFilter' runs again the last text-filter script used.
  558.               'perlLastFilter' modeVar holds pathname of last filter.
  559.               Menu flags now mirrored as modeVars, so they can be saved and
  560.                   restored between sessions.
  561.               Minor bug fixes.
  562. 1.2  8/94  -  'retrieveOutput' and 'autoSwitch' flags added.
  563.               'openInMacperl' added.
  564.               MacPerl output window now closed before new scripts are sent.
  565.               Filters now abort if there are compilation errors, and
  566.                    MacPerl diagnostic output retrieved and displayed.
  567. 1.1  8/94  -  'quitMacperl' added.
  568.               perl-mode file-marking updated for Alpha 5.90
  569.               Simplified installation via 'loadMacperl'(Pete Keleher).
  570. 1.0  7/94  -  perl-mode setup updated for Alpha 5.85:
  571.                    keyword colorization supported
  572.                    custom file-marking added
  573.               #! lines in filter scripts now handled correctly
  574.               Workarounds installed for AppleEvent problem in MacPerl 4.1.3
  575. 0.9  3/94  -  perl-mode stuff added, and
  576.               highlighted 'Perl commands' file (man page) prepared
  577.               minor bug fixes, too
  578. 0.8  3/94  -  flags are now check-marked
  579. 0.7  3/94  -  nested Text Filters folder now supported
  580.               menu format modified somewhat
  581. 0.6  3/94  -  'applyToBuffer' flag added
  582.               scripts in Alpha buffers can now be used as filters
  583. 0.5  2/94  -  'filters', 'open special' submenu added
  584.               'overwrite' flag added
  585. 0.2  1/94  -  menu support added by Martijn Koster <m.koster@nexor.co.uk>
  586.               'execute selection', 'execute buffer' commands added
  587. 0.1  9/93  -  text filter functionality created
  588.  
  589.  
  590. MacPerl application
  591. ===================
  592.  
  593. MacPerl was written (ported to the Mac) by
  594.  
  595.           Matthias Neeracher <neeri@iis.ee.ethz.ch>, and 
  596.           Tim Endres <time@ice.com>.
  597.  
  598. If you don't already have MacPerl, it's available by anonymous ftp 
  599.  
  600.   ftp://ftp.switch.ch/software/mac/perl ,  or
  601.   ftp://ftp.share.com/pub/macperl
  602.   
  603.  
  604. More information about MacPerl is available from the MacPerl Q&A page,
  605.  
  606.   http://err.ethz.ch/members/neeri/macintosh/perl-qa.html ,
  607.   
  608. Hal Wine's official MacPerl FAQ,
  609.  
  610.   ftp://ftp.netcom.com/pub/ha/hal/MacPerl/
  611.   
  612. and Sandra Silcott's MacPerl Primer, 
  613.  
  614.   http://www.unimelb.edu.au/~ssilcot/macperl-primer/home.html
  615.   
  616. which contains useful hints and sample scripts.
  617.        
  618. ---------------------------------------------------------------------------
  619.